#ifndef __INVADER_WINDOW_H__
#define __INVADER_WINDOW_H__

#include <QWidget>

class QFrame;
class QTimer;

class InvaderFrame;
class NumericLabel;
class IconLabel;
class TitleScreen;
class GameOverScreen;
class GameMenu;

/**
 * The window which contains everything in the game
 */
class InvaderWindow : public QWidget
{
  Q_OBJECT

public:
  InvaderWindow ();

private slots:
  void titleScreenActivity ();
  void beginNewGame ();
  void startDemo ();
  void gameOver ();
  void quitGame ();
  void displayTitleScreen ();
  void displayGameOverScreen ();
  void displayGame ();
  void displayGameMenu ();
  void clearHighscore ();

private:
  InvaderFrame *_gameFrame;
  TitleScreen *_titleScreen;
  GameOverScreen *_gameOverScreen;
  GameMenu *_gameMenu;
  NumericLabel *_scoreLabel;
  NumericLabel *_highscoreLabel;
  IconLabel *_livesLabel;
  QTimer *_demoTimer;
};

#endif
